package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import lombok.experimental.Accessors;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-入库/出库单对象 erp_king_inventory_info
 * @author cxl
 * @date 2024-07-13
 */
@TableName ("erp_king_inventory_info")
@ApiModel (value = "金蝶-入库/出库单", description = "金蝶-入库/出库单")
@Data
@Accessors (chain = true)
public class KingInventoryEntity extends BaseVo {


    /**
     * 主键id
     */
    @TableId (type = IdType.INPUT)
    private String id;

    /**
     * 类型(0入库 1出库)
     */
    @ApiModelProperty ("类型(0入库 1出库)")
    @TableField ("type")
    @Excel (name = "类型(0入库 1出库)")
    private String type;

    /**
     * 子类型(0采购入库 1其他入库)
     */
    @ApiModelProperty ("子类型(0采购入库 1其他入库)")
    @TableField ("child_tye")
    @Excel (name = "子类型(0采购入库 1其他入库)")
    private String childTye;

    /**
     * 单据编号
     */
    @ApiModelProperty ("单据编号")
    @TableField ("doc_code")
    @Excel (name = "单据编号")
    private String docCode;

    /**
     * 单据类型（单据类型接口）
     */
    @TableField ("doc_type")
    @ApiModelProperty ("单据类型")
    @Excel (name = "单据类型")
    private String docType;

    /**
     * 业务类型（与单据类型相对应）
     */
    @TableField ("doc_business_type")
    @ApiModelProperty ("业务类型,与单据类型相对应")
    @Excel (name = "业务类型,与单据类型相对应")
    private String docBusinessType;

    /**
     * 收料组织（编码）
     */
    @TableField ("receiving_org")
    @ApiModelProperty ("收料组织")
    @Excel (name = "收料组织")
    private String receivingOrg;

    /**
     * 采购组织（编码，默认当前子公司）
     */
    @TableField ("purchase_org")
    @ApiModelProperty ("采购组织/销售组织")
    @Excel (name = "采购组织/销售组织")
    private String purchaseOrg;

    /**
     * 收料部门（编码）
     */
    @TableField ("receiving_dept")
    @ApiModelProperty ("收料部门")
    @Excel (name = "收料部门")
    private String receivingDept;

    /**
     * 采购部门
     */
    @ApiModelProperty ("采购部门")
    @TableField ("purchase_dept")
    @Excel (name = "采购部门")
    private String purchaseDept;

    /**
     * 库存组（编码）
     */
    @TableField ("inventory_group")
    @ApiModelProperty ("库存组（编码）")
    @Excel (name = "库存组（编码）")
    private String inventoryGroup;

    /**
     * 采购组（编码）
     */
    @TableField ("purchase_group")
    @ApiModelProperty ("采购组（编码）")
    @Excel (name = "采购组（编码）")
    private String purchaseGroup;

    /**
     * 入库日期
     */
    @ApiModelProperty ("入库日期")
    @TableField ("inventory_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "入库日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date inventoryTime;

    /**
     * 仓管员
     */
    @ApiModelProperty ("仓管员")
    @TableField ("management_by")
    @Excel (name = "仓管员")
    private String managementBy;

    /**
     * 采购员
     */
    @ApiModelProperty ("采购员")
    @TableField ("purchase_by")
    @Excel (name = "采购员")
    private String purchaseBy;

    /**
     * 单据状态
     */
    @ApiModelProperty ("单据状态")
    @TableField ("doc_status")
    @Excel (name = "单据状态")
    private String docStatus;

    /**
     * 供应商id
     */
    @ApiModelProperty ("供应商id")
    @TableField ("supplier_id")
    @Excel (name = "供应商id")
    private String supplierId;

    /**
     * 供应商编码
     */
    @ApiModelProperty ("供应商编码")
    @TableField ("supplier_code")
    @Excel (name = "供应商编码")
    private String supplierCode;

    /**
     * 需求组织
     */
    @ApiModelProperty ("需求组织")
    @TableField ("require_dept")
    @Excel (name = "需求组织")
    private String requireDept;

    /**
     * 供货方id (供应商列表接口)
     */
    @ApiModelProperty ("供货方id (供应商列表接口)")
    @TableField ("provider_id")
    @Excel (name = "供货方id (供应商列表接口)")
    private String providerId;

    /**
     * 供货方编码
     */
    @ApiModelProperty ("供货方编码")
    @TableField ("provider_code")
    @Excel (name = "供货方编码")
    private String providerCode;

    /**
     * 供货方联系人(供应商联系人列表接口)
     */
    @ApiModelProperty ("供货方联系人(供应商联系人列表接口)")
    @TableField ("provider_contacts")
    @Excel (name = "供货方联系人(供应商联系人列表接口)")
    private String providerContacts;

    /**
     * 供货方地址
     */
    @ApiModelProperty ("供货方地址")
    @TableField ("provider_address")
    @Excel (name = "供货方地址")
    private String providerAddress;

    @ApiModelProperty ("收货方姓名，销售出库单独有该字段")
    @TableField ("receiving_name")
    @Excel (name = "收货方姓名")
    private String receivingName;

    @ApiModelProperty ("联系电话，销售出库单独有该字段")
    @TableField ("tel_phone")
    @Excel (name = "收货方姓名")
    private String telPhone;

    /**
     * 结算方id(供应商列表接口)
     */
    @ApiModelProperty ("结算方id(供应商列表接口)")
    @TableField ("balance_id")
    @Excel (name = "结算方id(供应商列表接口)")
    private String balanceId;

    /**
     * 结算方编码
     */
    @ApiModelProperty ("结算方编码")
    @TableField ("balance_code")
    @Excel (name = "结算方编码")
    private String balanceCode;

    /**
     * 收款方id(供应商列表接口)
     */
    @ApiModelProperty ("收款方id(供应商列表接口)")
    @TableField ("receive_id")
    @Excel (name = "收款方id(供应商列表接口)")
    private String receiveId;

    /**
     * 邮箱
     */
    @ApiModelProperty ("邮箱")
    @TableField ("email")
    @Excel (name = "邮箱")
    private String email;

    /**
     * 收款方编码
     */
    @ApiModelProperty ("收款方编码")
    @TableField ("receive_code")
    @Excel (name = "收款方编码")
    private String receiveCode;

    /**
     * 结算组织
     */
    @ApiModelProperty ("结算组织")
    @TableField ("settlement_org")
    @Excel (name = "结算组织")
    private String settlementOrg;

    /**
     * 定价时点
     */
    @ApiModelProperty ("定价时点")
    @TableField ("pricing_time_point")
    @Excel (name = "定价时点")
    private String pricingTimePoint;

    /**
     * 本位币
     */
    @ApiModelProperty ("本位币")
    @TableField ("base_currency")
    @Excel (name = "本位币")
    private String baseCurrency;

    /**
     * 结算方式(结算方式code)
     */
    @ApiModelProperty ("结算方式(结算方式code)")
    @TableField ("settlement_method")
    @Excel (name = "结算方式(结算方式code)")
    private String settlementMethod;

    /**
     * 价目表(价目表code)
     */
    @ApiModelProperty ("价目表(价目表code)")
    @TableField ("price_info_code")
    @Excel (name = "价目表(价目表code)")
    private String priceInfoCode;

    /**
     * 汇率类型(汇率类型表code)
     */
    @ApiModelProperty ("汇率类型(汇率类型表code)")
    @TableField ("exchange_rate_type")
    @Excel (name = "汇率类型(汇率类型表code)")
    private String exchangeRateType;

    /**
     * 结算币别(币别表code)
     */
    @ApiModelProperty ("结算币别(币别表code)")
    @TableField ("settlement_currency")
    @Excel (name = "结算币别(币别表code)")
    private String settlementCurrency;

    /**
     * 折扣表(折扣表code)
     */
    @ApiModelProperty ("折扣表(折扣表code)")
    @TableField ("discount_info_code")
    @Excel (name = "折扣表(折扣表code)")
    private String discountInfoCode;

    /**
     * 汇率
     */
    @ApiModelProperty ("汇率")
    @TableField ("exchange_rate")
    @Excel (name = "汇率")
    private String exchangeRate;

    /**
     * 付款条件(付款条件表code)
     */
    @ApiModelProperty ("付款条件(付款条件表code)")
    @TableField ("term_of_payment")
    @Excel (name = "付款条件(付款条件表code)")
    private String termOfPayment;

    /**
     * 金额
     */
    @ApiModelProperty ("金额")
    @TableField ("money_amount")
    @Excel (name = "金额")
    private String moneyAmount;

    /**
     * 价税合计
     */
    @ApiModelProperty ("价税合计")
    @TableField ("total_price_tax")
    @Excel (name = "价税合计")
    private String totalPriceTax;

    /**
     * 是否含税
     */
    @ApiModelProperty ("是否含税")
    @TableField ("is_tax")
    @Excel (name = "是否含税")
    private Boolean isTax;

    /**
     * 是否含价外税
     */
    @ApiModelProperty ("是否含价外税")
    @TableField ("is_extra_price_tax")
    @Excel (name = "是否含价外税")
    private Boolean isExtraPriceTax;

    /**
     * 整单折扣额
     */
    @ApiModelProperty ("整单折扣额")
    @TableField ("whole_discount_amount")
    @Excel (name = "整单折扣额")
    private String wholeDiscountAmount;

    /**
     * 税额
     */
    @ApiModelProperty ("税额")
    @TableField ("tax_amount")
    @Excel (name = "税额")
    private String taxAmount;

    /**
     * 货主类型
     */
    @ApiModelProperty ("货主类型")
    @TableField ("cargo_owner_type")
    @Excel (name = "货主类型")
    private String cargoOwnerType;

    /**
     * 货主
     */
    @ApiModelProperty ("货主")
    @TableField ("cargo_owner")
    @Excel (name = "货主")
    private String cargoOwner;

    /**
     * 创建人
     */
    @ApiModelProperty ("创建人")
    @TableField ("create_name")
    @Excel (name = "创建人")
    private String createName;

    /**
     * 创建时间
     */
    @ApiModelProperty ("创建时间")
    @TableField ("create_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 最后修改人
     */
    @ApiModelProperty ("最后修改人")
    @TableField ("last_update_name")
    @Excel (name = "最后修改人")
    private String lastUpdateName;

    /**
     * 最后修改日期
     */
    @ApiModelProperty ("最后修改日期")
    @TableField ("last_update_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "最后修改日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdateTime;

    /**
     * 审核人
     */
    @ApiModelProperty ("审核人")
    @TableField ("examine_name")
    @Excel (name = "审核人")
    private String examineName;

    /**
     * 审核日期
     */
    @ApiModelProperty ("审核日期")
    @TableField ("examine_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examineTime;

    /**
     * 作废状态
     */
    @ApiModelProperty ("作废状态")
    @TableField ("invalid_state")
    @Excel (name = "作废状态")
    private String invalidState;

    /**
     * 作废人
     */
    @ApiModelProperty ("作废人")
    @TableField ("invalid_name")
    @Excel (name = "作废人")
    private String invalidName;

    /**
     * 作废日期
     */
    @ApiModelProperty ("作废日期")
    @TableField ("invalid_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "作废日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invalidTime;

    /**
     * 确认状态
     */
    @ApiModelProperty ("确认状态")
    @TableField ("confirm_state")
    @Excel (name = "确认状态")
    private String confirmState;

    /**
     * 确认人
     */
    @ApiModelProperty ("确认人")
    @TableField ("confirm_name")
    @Excel (name = "确认人")
    private String confirmName;

    /**
     * 确认日期
     */
    @ApiModelProperty ("确认日期")
    @TableField ("confirm_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "确认日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmTime;

    /**
     * 录入人
     */
    @ApiModelProperty ("录入人")
    @TableField ("user_id")
    @Excel (name = "录入人")
    private String userId;

    /**
     * 逻辑删除
     */
    @ApiModelProperty ("逻辑删除")
    @TableField ("is_used")
    @Excel (name = "逻辑删除")
    @TableLogic
    private Integer isUsed;

    @ApiModelProperty ("是否发送金蝶；1：是；2：否")
    @TableField ("is_send")
    @Excel (name = "是否发送金蝶")
    private Integer isSend;

    @ApiModelProperty ("流程实例id")
    @TableField ("instance_id")
    private String instanceId;

    @ApiModelProperty ("流程状态")
    @TableField ("state")
    private String state;

    /**
     * 客户id
     */
    @ApiModelProperty ("客户id")
    @TableField ("customer_id")
    @Excel (name = "客户id")
    private String customerId;

    /**
     * 交货地点
     */
    @ApiModelProperty ("交货地点")
    @TableField ("delivery_address")
    @Excel (name = "交货地点")
    private String deliveryAddress;

    /**
     * 承运商
     */
    @ApiModelProperty ("承运商")
    @TableField ("carrier")
    @Excel (name = "承运商")
    private String carrier;

    /**
     * 运输单号
     */
    @ApiModelProperty ("运输单号")
    @TableField ("traffic_num")
    @Excel (name = "运输单号")
    private String trafficNum;

    /**
     * 发货组织
     */
    @ApiModelProperty ("发货组织")
    @TableField ("send_goods_group")
    @Excel (name = "发货组织")
    private String sendGoodsGroup;

    /**
     * 发货部门
     */
    @ApiModelProperty ("发货部门")
    @TableField ("send_goods_dept")
    @Excel (name = "发货部门")
    private String sendGoodsDept;

    /**
     * 收货方联系人
     */
    @ApiModelProperty ("收货方联系人编码")
    @TableField ("receiving_party_contacts")
    @Excel (name = "收货方联系人")
    private String receivingPartyContacts;

    /**
     * 收货地址
     */
    @ApiModelProperty ("收货地址")
    @TableField ("receiving_party_address")
    @Excel (name = "收货地址")
    private String receivingPartyAddress;

    /**
     * 联系电弧
     */
    @ApiModelProperty ("联系电弧")
    @TableField ("phone")
    @Excel (name = "联系电弧")
    private String phone;

    /**
     * 收货地址
     */
    @ApiModelProperty ("收货地址")
    @TableField ("receiving_party_name")
    @Excel (name = "收货地址")
    private String receivingPartyName;

    /**
     * 付款方
     */
    @ApiModelProperty ("付款方")
    @TableField ("payer")
    @Excel (name = "付款方")
    private String payer;

    /**
     * 修改人
     */
    @ApiModelProperty ("修改人")
    @TableField ("update_by")
    @Excel (name = "修改人")
    private String updateBy;

    /**
     * 修改时间
     */
    @ApiModelProperty ("修改时间")
    @TableField ("update_time")
    @JsonFormat (pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel (name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateTime;


    @ApiModelProperty ("业务type")
    @TableField (exist = false)
    private String businessType;

    @ApiModelProperty ("流程模型id")
    @TableField (exist = false)
    private String modelId;


    @ApiModelProperty ("物料明细信息")
    @TableField (exist = false)
    private List<KingInventoryMaterialEntity> materialLists;


    @ApiModelProperty ("收料组织名称")
    @TableField (exist = false)
    private String receivingOrgName;

    @ApiModelProperty ("采购组织名称/销售组织名称")
    @TableField (exist = false)
    private String purchaseOrgName;

    @ApiModelProperty ("收料部门名称")
    @TableField (exist = false)
    private String receivingDeptName;

    @ApiModelProperty ("采购部门名称")
    @TableField (exist = false)
    private String purchaseDeptName;

    @ApiModelProperty ("库存组名称")
    @TableField (exist = false)
    private String inventoryGroupName;

    @ApiModelProperty ("采购组名称")
    @TableField (exist = false)
    private String purchaseGroupName;

    @ApiModelProperty ("仓管员名称")
    @TableField (exist = false)
    private String managementByName;

    @ApiModelProperty ("采购员名称")
    @TableField (exist = false)
    private String purchaseByName;

    @ApiModelProperty ("供应商名称")
    @TableField (exist = false)
    private String supplierName;

    @ApiModelProperty ("需求组织名称")
    @TableField (exist = false)
    private String requireDeptName;

    @ApiModelProperty ("供货方名称")
    @TableField (exist = false)
    private String providerName;

    @ApiModelProperty ("供货方联系人名称")
    @TableField (exist = false)
    private String providerContactsName;

    @ApiModelProperty ("结算方名称")
    @TableField (exist = false)
    private String balanceName;

    @ApiModelProperty ("收款方名称")
    @TableField (exist = false)
    private String receiveName;

    @ApiModelProperty ("结算组织名称")
    @TableField (exist = false)
    private String settlementOrgName;

    @ApiModelProperty ("结算方式名称")
    @TableField (exist = false)
    private String settlementMethodName;

    @ApiModelProperty ("价目表名称")
    @TableField (exist = false)
    private String priceInfoName;

    @ApiModelProperty ("汇率类型名称")
    @TableField (exist = false)
    private String exchangeRateTypeName;

    @ApiModelProperty ("结算币别名称")
    @TableField (exist = false)
    private String settlementCurrencyName;

    @ApiModelProperty ("折扣表名称")
    @TableField (exist = false)
    private String discountInfoName;

    @ApiModelProperty ("付款条件名称")
    @TableField (exist = false)
    private String termOfPaymentName;

    @ApiModelProperty ("客户名称")
    @TableField (exist = false)
    private String customerName;

    @ApiModelProperty ("承运商名称")
    @TableField (exist = false)
    private String carrierName;

    @ApiModelProperty ("本位币")
    @TableField (exist = false)
    private String baseCurrencyName;

    @ApiModelProperty ("收货方联系人名称")
    @TableField (exist = false)
    private String receivingPartyContactsName;

    @ApiModelProperty ("付款方")
    @TableField (exist = false)
    private String payerName;

    @ApiModelProperty ("发货部门名称")
    @TableField (exist = false)
    private String sendGoodsDeptName;

    @ApiModelProperty ("发货组织名称")
    @TableField (exist = false)
    private String sendGoodsGroupName;

}
